﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using CapaEntidades;

namespace CapaDatos
{
    public class daVenta
    {

        #region singleton
        private static readonly daVenta _instancia = new daVenta();
        public static daVenta Instancia
        {
            get { return daVenta._instancia; }
        }
        #endregion

        #region Métodos
        //public List<enVenta> TP_ventasPorCobrar()
        //{
        //    SqlConnection cn = null;
        //    SqlCommand cmd = null;
        //    SqlDataReader dr = null;
        //    List<enVenta> lstVen = null;
        //    try
        //    {

        //        cn = Conexion.getConexion();
        //        cmd = new SqlCommand("spProductoBuscarXPresentacion", cn);
        //        cmd.CommandType = CommandType.StoredProcedure;
        //        cn.Open();
        //        dr = cmd.ExecuteReader();
        //        lstVen = new List<enProducto>();
        //        while (dr.Read())
        //        {

        //            enProducto producto = new enProducto();
        //            producto.pro_id = Convert.ToInt32(dr[0].ToString());
        //            producto.pro_codigo = dr[1].ToString();
        //            producto.pro_presentacion = dr[2].ToString();
        //            producto.pro_fecVencimiento = dr[3].ToString();
        //            producto.pro_uniMedida = dr[4].ToString();
        //            producto.pro_estado = Convert.ToInt32(dr[5].ToString());
        //            producto.pro_estadoDescripcion = dr[6].ToString();

        //            enLinea linea = new enLinea();
        //            linea.lin_id = Convert.ToInt32(dr[7].ToString());
        //            linea.lin_descripcion = dr[8].ToString();

        //            enLaboratorio laboratorio = new enLaboratorio();
        //            laboratorio.lab_id = Convert.ToInt32(dr[9].ToString());
        //            laboratorio.lab_nombre = dr[10].ToString();


        //            enPrecio precio = new enPrecio();
        //            precio.pre_id = Convert.ToInt32(dr[11].ToString());
        //            precio.pre_fecha = dr[12].ToString();
        //            precio.pre_precio = Convert.ToDouble(dr[13].ToString());
        //            precio.pre_descuento = Convert.ToDouble(dr[14].ToString());
        //            precio.pre_estado = Convert.ToInt32(dr[15].ToString());

        //            enAlmacen almacen = new enAlmacen();
        //            almacen.alm_id = Convert.ToInt32(dr[16].ToString());
        //            almacen.alm_nombre = dr[17].ToString();


        //            producto.stock = Convert.ToInt32(dr[18].ToString());

        //            producto.linea = linea;
        //            producto.precio = precio;
        //            producto.laboratorio = laboratorio;
        //            producto.almacen = almacen;

        //            lstVen.Add(producto);
        //        }
        //    }
        //    catch (Exception)
        //    {
        //        throw;
        //    }
        //    finally
        //    {
        //        dr.Close();
        //        cn.Close();
        //    }
        //    return lstVen;

        //}

        public static List<enPersonal> spListaPedidosAll()
        {
            SqlConnection cn = null;
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            List<enPersonal> lstPedido = null;
            try
            {

                cn = Conexion.getConexion();
                cmd = new SqlCommand("spListaPedidosAll", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cn.Open();
                dr = cmd.ExecuteReader();
                lstPedido = new List<enPersonal>();
                while (dr.Read())
                {

                    enPedido pedido = new enPedido();
                    pedido.ped_id = Convert.ToInt32(dr["ped_id"].ToString());
                    pedido.ped_fecha = Convert.ToInt32(dr["ped_fecha"].ToString());
                    enUsuario usuario = new enUsuario();
                    usuario.usu_user = dr["usu_user"].ToString();
                    enCliente cliente = new enCliente();
                    cliente.cli_razonSocial = dr["cli_razonSocial"].ToString();
                    enTipoDocumento documento = new enTipoDocumento();
                    documento.tipDoc_nombre = dr["tipDoc_nombre"].ToString();
                    enModoPago pago = new enModoPago();
                    pago.modPag_nombre = dr["modPag_nombre"].ToString();
                    
                    pedido.us = dr["per_apellidos"].ToString();
                    pedido.per_dni = dr["per_dni"].ToString();


                    pedido.usuario = usuario;
                    pedido.cliente = cliente;
                    pedido.documento = documento;
                    pedido.pago = pago;
                    lstPedido.Add(pedido);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                dr.Close();
                cn.Close();
            }
            return lstPedido;
        }
        #endregion

    }
}
